1. Field of the Invention
The present invention relates to a technology for preventing a network congestion based on feedback control, in an ABR (Available Bit Rate) communication service.
2. Description of the Related Art
Currently, the ATM Forum and ITU-T propose a service called the ABR service as a service for applying a data exchange technique implemented with an ATM (Asynchronous Transfer Mode) method, to a high-speed data communications network such as a LAN (Local Area Network), WAN (Wide Area Network), etc. With the ABR service, a switch feeds congestion information in a network back to a transmitting terminal, thereby avoiding congestion in the network. More specifically, the switch changes a transmission rate of the transmitting terminal while monitoring a use state of network resources, so that the network is efficiently operated, and congestion and a cell loss in the network can be prevented, in the ABR service. Provided below is the explanation about the ABR service.
&lt;ABR Service&gt;
In a communication system using the ABR service, a resource management cell (hereinafter abbreviated to an RM cell) is used to notify information about network resources of a terminal. A transmitting terminal transmits the RM cell each time it transmits a predetermined number of user data cells. The RM cell reaches a receiving terminal via an ATM network, and doubles back to the transmitting terminal.
FIG. 1 is a schematic diagram showing the format of the RM cell. In the same manner as a user data cell, the RM cell is composed of a 5-byte (or 5-octet) header and a 48-byte payload as shown in this figure.
A GFC/VPI field in the header is used as a GFC (General Flow Control) field in a UNI (User Network Interface), while it is used as part of a VPI (Virtual Path Identifier) field in an NNI (Network Node Interface). Accordingly, the virtual path identifier VPI is handled as 8 bits in the UNI, while it is handled as 12 bits in the NNI. Furthermore, a VCI field indicates a virtual channel identifier of 16 bits, and a PT field indicates a payload type of 3 bits, in the header. If the value of the payload type is "000", it indicates a user cell of no (without) congestion. If the value of the payload type is "110", it indicates an RM cell. A CLP field indicates a cell loss priority indication of 1 bit. An HER field indicates a header error control of 8 bits.
In the 48-byte payload of the RM cell, an RM PROTOCOL ID field of 1 byte is an RM protocol identifier, and a DIR field of 1 bit is a direction indication bit. If the value of the DIR field is "0", it indicates an F-RM cell (Forward RM cell). If the value of the DIR field is "1", it indicates a B-RM cell (Backward RM cell). A BN field of 1 bit indicates a backward explicit congestion notification bit indicating a B-RM cell generated in a switch or a receiving terminal in an ATM network. A CI field of 1 bit indicates a congestion indication bit. An NI field of 1 bit indicates a cell rate no increase bit. An RA field of 1 bit indicates a request acknowledge response bit which is not used in an ABR service. Res fields of 3 bits indicate unused bits.
An ER field of 2 bytes indicates an explicit cell rate. A CCR field of 2 bytes indicates a current cell rate. An MCR field of 2 bytes indicates a minimum cell rate that is declared when a connection is established. A QL field of 4 bytes indicates a queue length which is unused in an ABR service according to an ATM forum regulation. An SN field of 4 bytes indicates a sequence number. Res fields of 30 bytes plus 6 bits indicate unused bits. A CRC field of 10 bits indicates a cyclic redundancy code check bit.
An ATM switch in an ATM network notifies information about the network to a transmitting terminal by writing resource information (band information and congestion information) about the condition of the switch to an RM cell passing through the switch. The transmitting terminal which receives the RM cell to which the band and congestion information, etc. are written, recalculates its ACR (Allowed Cell Rate) according to the information, and makes a communication at a rate equal to or lower than the ACR.
Furthermore, the transmitting terminal declares/negotiates a PCR (Peak Cell Rate) which is a maximum transmission rate, and an MCR (Minimum Cell Rate) which is a minimum request rate, to/with the network, at the beginning of the communication. The transmitting terminal cannot transmit ATM cells (hereinafter referred to as cells) at a rate higher than the PCR which is determined by the negotiation. Additionally, the ATM network secures a rate equal to or higher than the MCR determined by the negotiation. Therefore, the ACR at the transmitting terminal varies between the MCR and the PCR (MCR.ltoreq.ACR.ltoreq.PCR).
With these operations, the ATM network side can avoid and be restored from the congestion, and the terminal side can transmit cells at a high rate on the condition that the network resources are not congested.
&lt;Operations performed by an ABR terminal&gt;
Operations performed by a transmitting terminal (ABR transmitting terminal) and a receiving terminal (ABR receiving terminal), which use the ABR service to make communications, are the target of standardization in the ATM Forum. Provided below is the brief explanation about the principal operations performed by these terminals.
ABR Transmitting Terminal:
The transmitting terminal transmits cells at a rate equal to or lower than the allowed cell rate ACR at each time point. The ABR transmitting terminal transmits one RM cell each time it transmits a predetermined number (Nrm-1) of user data cells. When receiving the RM cell, the transmitting terminal increases the ACR by a predetermined value if the CI (Congestion Indicator) bit, which is the congestion indication bit in the RM cell, is set to "0" (indicating non-congestion). On the other hand, the transmitting terminal decreases the ACR by a predetermined value if the CI bit is set to "1" (indicating congestion). Simultaneously with the above described operations, the transmitting terminal makes a comparison between an explicit rate ER (Explicit Rate) included in the RM cell and the previously recalculated ACR, and defines the lower rate as a new ACR. Note that, however, the value of the ACR must be within a range of MCR.ltoreq.ACR.ltoreq.PCR.
For an F-RM cell transmission, the transmitting terminal sets the peak cell rate PCR, which is declared by the user at the time of establishing a cell-call, in the ER field of the F-RM cell, sets the allowed cell rate ACR in the CCR field, and sets the minimum cell rate MCR in the MCR field.
When receiving a B-RM cell, the transmitting terminal can raise the cell rate within a range which is not beyond the peak cell rate PCR, according to a predetermined rule, on the condition that the congestion indication bit CI indicates non-congestion, and the cell rate no increase bit NI indicates that the cell rate can be increased. If the congestion indication bit CI indicates congestion, the transmitting terminal lowers the cell rate within a range which is not lower than the minimum cell rate MCR, according to a predetermined rule. Accordingly, the allowed cell rate ACR of the transmitting terminal is changed within the range MCR.ltoreq.ACR.ltoreq.PCR. If congestion does not occur in the ATM network, the transmitting terminal performs a transmission at the peak cell rate PCR or a cell rate close to the PCR.
ABR Receiving Terminal:
An ABR receiving terminal terminates a user data cell transmitted from a transmitting terminal, and returns a received RM cell to the transmitting terminal. If an EFCI (Explicit Forward Congestion Indication) bit indicating whether or not congestion occurs is set to "1" in the user data cell which is received immediately before the reception of the RM cell at that time, the receiving terminal assigns the value "1" to the congestion indication bit CI in the RM cell to be returned, and returns that RM cell.
&lt;Operations performed by an ATM switch&gt;
Operations for implementing the ABR service, which are performed on an ATM network side, that is, operations performed by an ATM switch, are grouped into two major types, and respectively called an EFCI mode and an ER mode.
A switch in the EFCI mode sets the EFCI bit in a user data cell passing through the ATM switch in a congested state. With this setting, the congestion in the switch can be notified to the receiving terminal, which then returns the RM cell whose CI bit is set by the receiving terminal itself. As a result, the congestion can be notified to the transmitting terminal.
A switch in the ER mode calculates a rate at which terminals can perform a transmission based on a congested state, and an available band in the switch, also calculates the explicit rate ER which is a rate at which a transmitting terminal is allowed to perform a transmission, and writes that ER to the ER field of an RM cell passing through the ATM switch in a forward direction (from the transmitting side to the receiving side), or in a backward direction (from the receiving side to the transmitting side). With these operations, the ATM switch can directly instruct the terminals of the rate, thereby performing rate control more precisely.
Furthermore, the switch itself can generate an RM cell, and transmit the generated RM cell to the transmitting terminal in addition to an RM cell transmitted from a terminal, regardless of the EFCI mode or the ER mode. At this time, the ATM switch can set the CI bit in the RM cell, or write a calculated explicit rate ER to the generated RM cell, depending on its congested state or available band.
The ATM Forum targets the above described operations as the ATM switch operations to be standardized. A specific control method or an implementation method, however, are not the target of standardization. For example, a method for detecting a congested state in an ATM switch, or an algorithm for calculating the explicit rate ER, is not to be standardized.
To assure a communication quality for each user in an ATM network, a rate of flow of cells from each user is monitored in a UNI (User-Network Interface), which is a network-terminal interface arranged at an entry point of the network. If cells exceeding an allowed rate are transmitted, a UPC (Usage Parameter Control) capability for discarding those violation cells, etc. must be provided.
If violation cells are allowed to flow into the network, congestion occurs due to a massive flow of cells into a communications channel. Therefore, there is a possibility that the quality of communications, not only of that user but also another user, cannot be assured. Since it must be also monitored whether or not the user observes a rate instructed from the network by an RM cell in addition to a rate of flow of cells contracted between the user and the network at the time of establishment of the call, the monitoring rate under the UPC control must dynamically be changed depending on the contents of the RM cell.
Under the UPC control, a switch cannot change the monitoring rate immediately after it writes an ER or congestion indication to an RM cell. This is because a delay is caused due to a time required for the following operations: the RM cell reaching a transmitting terminal; the transmitting terminal changing the ACR depending on the contents of the received RM cell; and the cell transmitted after that reaching the ATM switch. Therefore, the monitoring rate must be changed after a turnaround delay time elapses. The ATM switch making the ABR communication therefore needs to measure a delay time required for the UPC.
In the ABR communication, the monitoring rate must be changed after the ER written to the RM cell is changed according to the monitoring rate in the UNI, and the above described amount of delay time elapses.
To possibly prevent a user side from erroneously determining a cell as a violation cell in the UPC, when the user side obeys an instruction from a switch, the ATM Forum and the ITU-T are currently discussing whether or not to make the UPC lower the rate according to the maximum value .tau..sub.2 of a delay time, or raise the rate according to a minimum value .tau..sub.3 of the delay time.
Since the transmitting terminal terminates an RM cell which has returned from the switch to the transmitting terminal, the total amount of transmission time obtained by adding a travel time of the cell transmitted from the switch to the transmitting terminal to the travel time of the cell transmitted from the transmitting terminal to the switch, may be used as the above described amount of delay time to be measured.
Because clock phases for measuring delays on both on the transmitting and switch sides must be synchronous with high precision in order to define the above described total amount as an accurate delay time, this is difficult to realize.
Additionally, the following two problems must be overcome in order to implement the ABR service in an ATM switching system.
Problem 1: Operations performed by an ABR terminal are the target of standardization as described above, but specific operations performed by an ATM switch are not the target of standardization. Accordingly, the ATM switch must include a control capability for implementing the operations of the above described EFCI mode or ER mode in order to support the ABR service in the ATM switch. Consequently, the ATM switch requires a new control capability which is not included in a conventional ATM switch.
Problem 2: Since a switching speed of an ATM switch is remarkably high in a large scale ATM switching system, a capability of calculating/changing the explicit rate ER can hardly be implemented in all of the buffers.